The online racing simulator
Searching in All forums
(951 results)
Yisc[NL]
S3 licensed
Quote from adirany :It is the moment of the year where Scawen can send us a sign that he cares for us as much as we care for his product.

I don't think that you realise what you just said there and if you would do so, you would understand that there is not a bigger insult to make.
If someone cares about the players, it's Scawen.
Name one developer that's interacting with the community on a forum, interacting when test patches are out, that is always open for suggestions, that cares about the smallest details, etc. etc.
I will help you, there isn't one.
Yisc[NL]
S3 licensed
Happy birthday LFS and thank you so much Scawen, Eric and Victor for this awesome game.
Yisc[NL]
S3 licensed
Quote from nacim :That would make the banning a bit more robust maybe if only accounts that are only 6 months/1 year old are allowed to post on theses threads ? Uhmm

I would add a certain amount of posts to that as well.
Otherwise people will start creating accounts now (or maybe did so in the past) and can use them ofter 6 or 12 months.
Okay, setting a certain amount of posts can be bypassed as well by giving random reactions to crank up the numbers, but mods will catch that and if the percentage of 'non-reactions' is too high ...
Yisc[NL]
S3 licensed
Are Lapper and your LFS server on the same machine?
If not, then the IP address that you bind, needs to be the one of the machine on which Lapper is running.
Yisc[NL]
S3 licensed
There are no video tutorials about Lapper, so I cannot point you to them.
By a command line button you mean a button you can enter text into?
The correct code for those is:

openPrivTextButton( "[button name]",[pos left/right],[pos top/bottom],[width],[height],[spacing],[formatting],"[text when clicking button]","[text showing on button]",[allowed length of text to enter],[code to go to when clicking button] );

A lot of information like this can be found when searching through the file 'changes.txt' which can be found in the "doc" folder.

A PubStatID can be generated on LFSWorld under My LFSW settings
Generate an ID and bind it to the IP address of your LFS server.
Then copy/paste the ID into Lapper and remove the # that is in front of the line of code:

$PubStatIdk = "[your key]";

The error on the admin files just means that Lapper cannot find them.
Yisc[NL]
S3 licensed
Changelog for Set Schedule V2.08:

-Added the option to add one or more MOD ID's as car(s) for a race

Change the extension of the file to .lpr and add them to addonsused.lpr to be able to use it.

=== ===

Changelog for Schedule V2.10:

-Added code to be able to set allowed mods for a race

Change the extension of the file to .lpr and add them to addonsused.lpr to be able to use it.
Last edited by Yisc[NL], .
Yisc[NL]
S3 licensed
After a while I gave up 'waiting' Big grin Wink and used the LFS command to get it working as Lapper kept crashing and I couldn't figure out what was wrong.
For those interested, I used this in Lapper: cmdLFS("/mods " [more code, not relevant here] );

The allowed mods on my server aren't coming from a textfile.
They come from the Lapper database as I update my Set Schedule script, to allow mods in there as well.
Maybe that is the issue and then it would be great to solve this crash.

Yes, the mod still existed at the time of testing, so that wasn't the cause.

*edit* I've have just uploaded the new versions of the script to this forum, so you can grab them if you want to search for the issue
Last edited by Yisc[NL], .
Yisc[NL]
S3 licensed
I am not sure what you have done, as in the screenshots there is only some code for a login, but nothing about the things you mentioned.
On this forum you can post the actual code using {php} and {/php} tags (replace {} with [])
It will look like this:

<?php 
IF ($register_count == "")
THEN
ENDIF
?>

Issue with setting allowed mods
Yisc[NL]
S3 licensed
When I use this command: SetListAllowedMods( "BC858B,C9F8FE" );
I get this error:


4/20/2022 3:00:32 PM -> Error on Task System.NullReferenceException: Object reference not set to an instance of an object.
at LFSLapper.LFSClient.setlistallowedmods(unionVal val, ArrayList args)
at GLScript.GLApp.parseBackcall(SetOfVars GVAR, SetOfVars LVAR, unionVal val, ArrayList args)
at GLScript.Parseur.getval(SetOfVars GVAR, SetOfVars LVAR, executeParsedFunction BC)
at GLScript.GLApp.retrieveEvalVar(String funcName, TokenParse tkparse, TokenBuffer currTokenBuffer, SetOfVars GVAR, SetOfVars LVAR, Boolean breakFunc, Char& breakCar)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteFunction(String funcName, String[] argsVals)
at GLScript.GLApp.parseBackcall(SetOfVars GVAR, SetOfVars LVAR, unionVal val, ArrayList args)
at GLScript.Parseur.getval(SetOfVars GVAR, SetOfVars LVAR, executeParsedFunction BC)
at GLScript.GLApp.retrieveEvalVar(String funcName, TokenParse tkparse, TokenBuffer currTokenBuffer, SetOfVars GVAR, SetOfVars LVAR, Boolean breakFunc, Char& breakCar)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteFunction(String funcName, String[] argsVals)
at GLScript.GLApp.executeFunction(String funcName, String[] argsVals)
at Configurator.lexConfigurator.executeFunction(String funcName, infoPlayer pcurrInfoPlayer, String[] par)
at LFSLapper.LFSClient.loopTask()

When I use this command: SetAllowedMods( "BC858B,C9F8FE" );
I get this error:

4/20/2022 2:56:24 PM -> Syntax error: in file ".\AB-configs\.\..\includes\.\schedule.lpr" at line #394
The function: SetAllowedMods does not exist
Function 'set_server_settings' script aborted

In file 'Changes.txt' both commands ('SetListAllowedMods' and 'SetAllowedMods') are mentioned, but I cannot get either of them to work.
The last error is obvious, the command does not exist, so that seems to be a typo in file 'Changes.txt', but I have no clue why the other command isn't working.
Any help is appreciated.
Yisc[NL]
S3 licensed
I have found the issue my self Frown
This:

<?php 
$mods_id_array 
[1,$i] = "" $list_mods[$i,"id"];
?>

Should be this:

<?php 
$mods_id_array
[1,$i] = "" $list_mods[$i,"id"];
?>

Cannot get dumpVar to work with Mod ID's
Yisc[NL]
S3 licensed

<?php 
    updatelistofmods
();
    
$list_mods getlistofmods();

    FOR(
$i 0$i ToNum($list_mods["numofmods"]); $i $i 1)
        
$mods_id_array [1,$i] = "" $list_mods[$i,"id"];
    ENDFOR

    
writeline "NBR of mods: " ToNum($list_mods["numofmods"]) );
    
dumpVar ($car_names_set_schedule);
    
dumpVar ($mods_id_array);
    
writeline "debug 3b = " $mods_id_array [1,0] );
    
writeline "debug 4b = " $mods_id_array [1,463] );
?>

I've made this simple piece of code and for some reason this "dumpVar ($mods_id_array);" is always returning an empty array.
But when I access information that should be in the array using this:

writeline ( "debug 3b = " . $mods_id_array [1,0] );

Or this:

writeline ( "debug 4b = " . $mods_id_array [1,463] );

The data is correctly returned.
To make sure that I have not lost my mind, I tried this "dumpVar ($car_names_set_schedule);" (this is an array that manually get filled with data) and that is returning array data, so the dumpVar command it self is not broken.

The array "$mods_id_array" is declared as a globalvar (see attached script) so I have no idea what I am missing here.

I can go on with the things I want to build, but do like to know why the content of the array is not properly returned.
Yisc[NL]
S3 licensed
I got it working now.
Just as you did, I entered the Redirect URls:

Yisc[NL]
S3 licensed
Mine looked like this:



I have unchecked the box 'Single Page Application' for the ClientID I had, restarted Lapper but it still crashes.
Then I deleted the ClientID I had and created a one without the 'Single Page Application' box ticked.
I've entered the new CliendID and ClientSecret into myinc.lpr , restarted Lapper , executed my code ... and it still crashes.
Yisc[NL]
S3 licensed
I've send you a private message with my clientID and clientSecret.
All seems to be correct on my end, but when I check API Access Management on this website, it says that my client is never used:

Yisc[NL]
S3 licensed
Yes, I did register my Lapper, got a client ID and client secret and added both to myinc.lpr , restarted Lapper and executed my code.
I have added the 2 lines mentioned to the following sub event:

Sub Set_Schedule ( $KeyFlags )

That is part of my Set Schedule module and gets executed after giving command: !ss
The first two lines in that event are now:

updatelistofmods();
$list = getlistofmods();

LFS gives a messages about getting the modslist and then Lapper crashes and is restarted.
Lapper crash when using getlistofmods
Yisc[NL]
S3 licensed
I am using this piece of code to try and get the list of mods:

updatelistofmods();
$list = getlistofmods();

As soon as the code gets executed, Lapper (7.0.9.0) crashes with the following information:

4/13/2022 2:51:24 PM

Lapper Instance 188.122.74.155/59737 abort!

One or more errors occurred.
mscorlib
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at LFSLapper.LFSClient.updatelistofmods(unionVal val, ArrayList args)
at GLScript.GLApp.parseBackcall(SetOfVars GVAR, SetOfVars LVAR, unionVal val, ArrayList args)
at GLScript.Parseur.getval(SetOfVars GVAR, SetOfVars LVAR, executeParsedFunction BC)
at GLScript.GLApp.retrieveEvalVar(String funcName, TokenParse tkparse, TokenBuffer currTokenBuffer, SetOfVars GVAR, SetOfVars LVAR, Boolean breakFunc, Char& breakCar)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteFunction(String funcName, String[] argsVals)
at GLScript.GLApp.parseBackcall(SetOfVars GVAR, SetOfVars LVAR, unionVal val, ArrayList args)
at GLScript.Parseur.getval(SetOfVars GVAR, SetOfVars LVAR, executeParsedFunction BC)
at GLScript.GLApp.retrieveEvalVar(String funcName, TokenParse tkparse, TokenBuffer currTokenBuffer, SetOfVars GVAR, SetOfVars LVAR, Boolean breakFunc, Char& breakCar)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end)
at GLScript.GLApp.privExecuteFunction(String funcName, String[] argsVals)
at GLScript.GLApp.executeFunction(String funcName, String[] argsVals)
at Configurator.lexConfigurator.executeFunction(String funcName, infoPlayer pcurrInfoPlayer, String[] par)
at LFSLapper.LFSClient.managePacket(MSO mso)
at LFSLapper.LFSClient.Loop(Connect insimConnection)
at LFSLapper.LFSClient.doloop()
at LapperInstances.LapperInstance.doConnection()
Void ThrowIfExceptional(Boolean)
Closing Instance...

I have added my Client AD and Client Secret to file 'myInc.lpr' but the LFS website says that the API has never been used so far, so it seems it doesn't get called.
Then I checked the file 'addonsused.lpr' and I see this:

#------------------------------------------------------------------------------#
# LFSRestAPI
#------------------------------------------------------------------------------#
include( "./optional/lfsrestapi_Info.lpr");

Weirdly, the mentioned LPR file is not found anywhere in the Lapper directories (no idea if it is needed to get things working for me).
I have found this file "LFSRestAPI.cs" but that's sourcecode.

Any help would be appreciated.
Yisc[NL]
S3 licensed
Great video, well done
Yisc[NL]
S3 licensed
Clear and indepth answer, thank you very much.
Yisc[NL]
S3 licensed
Quote from Scawen :And has the /reinit command removed as it could cause problems, and we aren't aware of a need for that command.

This is interesting as I was in contact with support last weekend, after our server got stuck after using the /reinit command
Once all was running again, I ask if it was safe to use the command and I got the all clear.

We did not use it so far, as we were not sure if it was needed (when we hosted our own servers, the command was used every night to make sure the servers weren't slowly slowing down over time).
Have to admit that we started using it a long time ago, so maybe those issues causing the slowly increasing slowness, was already solved at some point.

What kind of problems did it cause?
Yisc[NL]
S3 licensed
I have mixed feelings about this news. I totally get it that piracy has to be stopped to save the LFS business, but even with the upcoming changes, they will continue running what they have and are still making money from it (unless that can be stopped as well, but I doubt that). I have run 5 servers for many many years on a VPS with Lapper installed on it. Maybe we can still do the same with the new way and maybe even for less money, but with the same freedom as well? Now I can RDP to the VPS and do what ever I like. I made all sorts of scripts, made all things possible that the team I am "working" for needs and I think that would change.

Mod support is not something I am looking forward to at all, but I can see that many people want it. Hopefully it won't cause all sorts of legal issues as LFS will never be able to take up big companies and their lawyers.

All in all mixed feelings here.
Yisc[NL]
S3 licensed
Quote from ikubkib :How to register

You joined this forum over 2 years ago and this is your first post.
When checking your online stats, you have not driven a single lap.
Probably done all your driving on a hacked version of LFS, so won't get help from me.
Yisc[NL]
S3 licensed
I've given the script of sinanju a quick read and cannot spot anything obvious that is wrong with it.
Like he said, it would be more then welcome to see the script in action with some people that are actually drifting and then put in debugging when something doesn't go as expected.
Normally I do all the testing on my own, but with a script like this, you need others to help you out.
Yisc[NL]
S3 licensed
I feel a bit guilty as well, as you sure are not the random guy that comes here, ask for something and then go away.
You did your fair share of contributions to Lapper and to try and help others, so I have to make an apoligy as well towards you.
Tomorrow I will load the script and see what it does and if there are any obvious flaws/issues I can work on.
I am not a drifter or have never attempted to drift either, so the actual output of the script won't mean a thing to me and if there are issues that only happen when more people are on a server, then it will be hard to debug things on my own, but I will see how far I can get and will post again here.
Yisc[NL]
S3 licensed
Wow, this is a very nice system with a great GUI.
I am sure people will start using this, so thanks for sharing and making this.
Yisc[NL]
S3 licensed
Forgive me for asking and maybe being a bit harsh, but what do you expect now?
Someone gave you a script to help you, then you start changing it and made it worse, while alsno not making sure you kept a clean copy or at least track of what you did.
Now you put it out here again with the mention of some things that are probably not working like they should but that's all the info you are giving and then expecting people to help you?
What have you tried to solve the issues that are probably there?
Are there errors to share?
Have you done proper debugging on the script?

This is not a stab only at you, but a general annoyance when people come here and ask for help, while not showing any efforts made.
Sometimes the question/problem is interesting and then I start to look into it without questions asked.
Often I come up with answers or even a script or improved script.
Then you get "thank you" and people bugger off, while I have spent hours on it.
Okay, that's my choice to do that, but I also have the feeling that people have no idea how much time and effort it takes to come up with good scripts.
Rant over now Taped Shut
FGED GREDG RDFGDR GSFDG